مدیر فنی کیست؟
اگر جستوجویی در اینترنت انجام دهید متوجه میشوید که تعریف دقیق و روشنی برای عنوان شغلی مدیر فنی وجود ندارد و مسئولیتهای محوله به این شخص از شرکتی به شرکت دیگر متفاوت است. در حالت کلی مدیر فنی مسئولیت نظارت و مدیریت تیمهای توسعه نرمافزاری را با اتکا بر دانش فنی، مدیریت پروژه، برنامهریزی و طرحریزی راهبردی، انتخاب رونسپاری نرمافزاری و موارد این چنینی بر عهده دارد. بر مبنای این تعریف مشاهده میکنید که یک مدیر فنی ضمن آنها وظیفه هدایت و رهبری فنی توسعهدهندگان تحت نظارت خود را دارد، باید اطمینان حاصل کند که فناوریهای مورد استفاده از برنامههای تجاری سازمان پشتیبانی کرده و در راستای پیشبرد این اهداف هستند.
برقراری نظم و تعادل میان کارهای روزانه
مدیر فنی برای پیادهسازی تعادل میان تیمها و شرکت باید به دنبال پیدا کردن راهکاری برای حفظ تعادل در وظایف روزانه تیم توسعهدهنده نرمافزار باشد. بنابراین باید با فناوریهای روز آشنایی داشته باشد، هرچند تسلط بر برنامهنویسی یک ضروری نیست. هرچند برخی از کارشناسان منابع انسانی به این نکته اشاره دارند که آشنایی با برنامهنویسی یک ضرورت نیست، اما مطالعه روی آگهیهای استخدامی نشان میدهد که شرکتها از مدیر فنی انتظار دارند در زمینههای تخصصی مرتبط با فعالیتهای شرکت که حول محور نرمافزار است آشنایی داشته باشد. به بیان دقیقتر، برخی انتظار دارند سطح مهارتهای یک مدیر فنی در حد یک برنامهنویس حرفهای و گاهی اوقات یک توسعهدهنده فولاستک باشد. بنابراین یک مدیر فنی باید دانش فنی و عملی کافی داشته باشد تا بتواند بر مبنای دانشی که دارد تشخیص دهد که آیا راهحل انتخاب ارزش پیادهسازی و آزمون را دارد و اگر پاسخ مثبت است راهحل خود را به پشته فناوری (tech stack) سازمان وارد کند این راهکار ممکن است یک ابزار، زبان برنامهنویسی جدید یا پارادایمی در دنیای متنباز باشد. اگر این راهحل موفقیتآمیز بود، در مرحله بعد باید پیچیدگیهای فناوری را برای مدیر یا مدیران ارشد تشریح کند تا به یک اجماع کلی دست پیدا کند و در نهایت راهحل را در اختیار اعضا تیم یا مشتریان قرار دهد. یک مدیر فنی موظف است روزانه با اعضا تیم گفتوگو کند و درباره ترندهای روز دنیای فناوری اطلاعات فنی در اختیار آنها قرار دهد.
مدیر فنی چه شرح وظایفی دارد؟
قبل از آنکه به تشریح شرح وظایف یک مدیر فنی بپردازیم، باید به نکته مهمی اشاره کنیم. عاملی که باعث موفقیت کار یک مدیر فنی میشود، فرهنگ کار تیمی است. بهطور مثال، پرسیدن نظرات کارمندان، آموزش توسعهدهندگان مبتدی و تنظیم مجموعهای از استانداردها برای تمامی افراد تیم به حفظ انگیزه و تعامل بیشتر در شرکت کمک میکند. یک مدیر فنی با تیمی با دانش فنی بالا که مسئولیت تحویل کدهای با کیفیت برای مدیریت دهها میلیون درخواست روزانه دارد در تعامل است. بهطور مثال، ممکن است حجم زیادی از کدها با مستندسازی پایین و در مدت زمان کوتاهی ایجاد شده باشند و نیاز به بهبود ساختار کدها، تغییر الگوریتمها و بازآفرینی معماری سرویسها نیاز باشد، در این حالت یک مدیر فنی باید مهارتهای زیر را داشته باشد:
- با توسعهدهندگان مختلف در تیمهای مختلف همکاری کنید.
- کدهای با کیفیت بالا، عملکرد بهینه، سریع، مقیاسپذیر و با قابلیت استفادهی مجدد تولید کنید.
- مسائل مختلف را بررسی کنید، سریع تصمیم بگیرید و گامهای لازم برای پیادهسازی تصمیمها را بردارید.
- نیازهای کسبوکار و همچنین نیازهای فنی را شناسایی کنید، آنها را بررسی کنید و در راستای برطرف کردن آنها همراه با توسعه دهندگان قدم بردارید.
- در تمام چرخههای طراحی، تولید و نگهداری نرمافزار و سرویسها فعالیت داشته باشید.
- مسئولیت سرویسهای محول شده به خودتان را بپذیرید و برای ارائهی باکیفیتترین محصول ممکن و بهبود دائمی آن تلاش کنید
یک مدیر فنی برای کار در یک شرکت ارائهدهنده خدمات نرمافزاری چه مهارتهایی نیاز دارد؟
همانگونه که اشاره شد، شرح وظایف یک مدیر فنی به شرکتی که در آن کار میکند بستگی دارد. بهطور مثال، یک مدیر فنی که قصد استخدام در یک شرکت نرمافزاری را دارد باید در ارتباط با مباحث زیر آشنایی داشته باشد:
- دانش کافی درباره مفاهیم پایه علوم کامپیوتر مثل ساختار دادهها و طراحی الگوریتم.
- دانش کافی درباره مفاهیم تولید نرمافزار مثل اصول مهندسی نرمافزار، مهندسی نیازمندیها، معماری نرمافزار و اصول توسعه چابک نرمافزار.
- قدرت بیان بالا و توانایی برقراری ارتباط با تیم کسبوکار و سایر اعضای تیم فنی.
- تجربه مدیریت تیمهای فنی در زمینههای مشابه و یا اثبات عملکرد در حوزههای مدیریتی.
- توانایی تحلیل مسائل فنی و کسبوکار، شکستن آنها به نیازمندیهای جزئی و اجرای اقدامات لازم به منظور برآوردهسازی نیازمندیها به کمک سایر اعضای تیم فنی.
- توانایی استفاده از دادهها و بررسی متریکها به منظور اتخاذ تصمیمهای مبتنی بر دادهها.
- توانایی کار در شرایط پرفشار با محدودیت زمانی.
- آشنایی با انواع فناوریهای تولید نرمافزار در حوزه وب و موبایل.
- تسلط بر یکی از زبانهای برنامهنویسی، ترجیحا پایتون.
- تسلط بر یکی از فریمورکهای وب، ترجیحا جنگو.
- تسلط بر مفاهیم سرویسگرایی، طراحی API و پروتکل HTTP.
- آشنایی با مفاهیم لینوکس/یونیکس.
- آشنایی با مفاهیم UI/UX، ترندهای وب و فناوریهای روز.
- آشنایی با انواع پایگاههای داده مبتنی بر زبان پرسوجوی ساختیافته و پایگاههای دادهی NoSQL نظیر mongodb، Cassandra، CouchDB و …
- تجربه کار با گیت در یک تیم منسجم.
علاوه بر این، برخی شرکتها مهارتهای زیر را از افراد درخواست میکنند:
- تجربه کار با ابزارهای Caching (ترجیحا Redis).
- تجربه کار با سرویسهای مدیریت وظایف نظیر celery و صفهای پیام آن مثل Redis و یا RabbitMQ.
- آشنایی با مفاهیم مدیریت سرور، وبسرورها، Gatewayها و ابزارهای مدیریت و پایش سرور.
- دانش کافی در مورد شیگرایی، طراحی ماژولار و الگوهای طراحی (Design Patterns)
حال اگر این شخص در نظر داشته باشد در یک شرکت ارائهدهنده خدمات مشغول به کار شود، مجموعه مهارتها و شرح وظایفی که دارد بهطور کامل تغییر پیدا میکند و باید روی مباحث زیر متمرکز شود:
- آشنایی با اکوسیستم فناوری اطلاعات.
- مدیریت ارتباطات با شرکای کلیدی.
- آشنایی با سرویسها و خدمات زیرساختی که شرکت ارائه میکند.
- توانایی ارزیابی نیازها و رضایت شرکای کلیدی.
- مسوولیتپذیری، سرعتعمل و دقت بالا و قدرت مذاکره و متقاعدسازی بالا.
- توانایی انجام مذاکرات تجاری با هدف عقد قرارداد با مشتریان.
- پیگیری جذب، ارزیابی و برقراری ارتباط با سرنخهای فروش از طریق مکاتبات ایمیلی، برقرای تماس تلفنی، برگزاری جلسات آنلاین و حضوری.
- ارایه طرح کسب و کار برای همکاریهای مشترک.
- شناسایی فرصتهای مناسب برای همکاری مشترک.
- مشارکت با هدف بهبود چرخه حیات سرویسهای توسعه داده شده.
- ارایه گزارشهای منظم.
- فروش مستقیم و بازاریابی سرویسهای توسعه داده شده.
- تجزیه و تحلیل سوابق مالی یا گزارشها برای تعیین وضعیت عملکرد فروش.
به این مطلب چند ستاره میدهید؟(امتیاز: 3.8 - رای: 7)